iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
1
Security

資安0~100K只要30天系列 第 20

Day 20 - XSS (二)

  • 分享至 

  • xImage
  •  

打題目囉

今天要來介紹一下可以練習 XSS 的地方

google 把拔的 XSS-Game
那在玩這個之前
建議大家使用 Chrome 以外的瀏覽器
不然有時候會遇到很尷尬的情況
比如說攻擊無效被 chrome 先擋下來之類的
太安全也不是個好事呢 (X

今天就來一一講解裡面的小練習吧~
總之就是不斷的觸發 alert()
總共有 6 關
扛住 !!!
Let's Go ~

[1/6] Level 1: Hello, world of XSS

很快的
按鈕一按下去來到了第一關

大家可以先按底下的 source code 出來看看
可以發現在 #45 的地方
我們的輸入直接被用字串串接的方式放進網頁中 (意思就是沒過濾辣~)

直接送一個最基本的 javascript 去觸發 alert

<script>alert()</script>

[2/6] Level 2: Persistence is key

一個看起來是留言版的地方
你會發現你丟 Level 1 的 payload 進去發現沒用
這是因為在 index.html#32 的地方使用 innerHTML() 將我們輸入的東西放上去

innerHTML 生成出來的 <script> 元素並不會執行
因此我們要透過 HTML 本身的元素來執行 js

最方便的就是利用加載圖片錯誤來自動觸發

<img src="" onerror="alert()">

[3/6] Level 3: That sinking feeling...

第三題有不同圖片讓你選
亂點會發現網址上面有變化

接著我們看到 index.html 的 source code

會發現網址上 # 後面的數字好像就是拿來存取圖片的
而且一樣用字串串接的方式 (又沒過濾ㄌ
這次要做的跟第二題頗像
構造一個圖片加載錯誤來觸發
只是這次是從語法中間來改造

0' onerror="alert()" '

[4/6] Level 4: Context matters

一上來就來個輸入框,意圖使人搞事
首先發現這是一個計時器
而且點開始後會跳到下一頁把你輸入的東西放在網頁上
倒數完之後會噴個 alert 給你

我們直接來看看 timer.html#21 的地方

發現這個 {{ timer }} 應該就是我們輸入秒數的地方
這邊要注意程式會將我們的輸入放在 onload 這個 attribute 中
因此我們要構造一個把 startTimer() 關閉的語法
再自己串上 alert
再把後面的語法關閉好

');alert();a('

[5/6] Level 5: Breaking protocol

首先點 Sign up 進去下一頁
會發現網址上出現了 next=confirm 的東西
然後有個 Next >> 的按鈕
去看看 signup.html source code 可以發現

#15 的地方就是我們上面的 GET 參數
那這邊有個小技巧
就是 URL 其實可以直接觸發 javascript 喔~

next=javascript:alert()

輸入完之後記得按一下 Go 去做 request
讓這個網站目前的 next 狀態變成我們後來輸入的東西

[6/6] Level 6: Follow the ?

跟著兔兔辣~
從網頁的訊息跟 URL 知道會從外部 include 一個 js 檔案進來
看一下 index.html 裡面有個函數叫做 includeGadget(url) 一直從 17 ~ 41 行
而這個 url 就是網址 # 後面的內容
函數一開始就跟你說會檢查 http://https://
但只限制小寫
我們隨便改其中一個字變大寫就繞過了 ww
或是只打 // 這樣其實也會被認定為網址的意思

然後這邊要注意一下
以前這題目是真的可以自己引外面檔案來用的
但不知道什麼時候突然不行了 @@

因此就用底下 hint 中給的 google js 吧
foo 改成 alert

//google.com/jsapi?callback=alert

END

看到這不用我說了吧
吃雞囉


上一篇
Day 19 - XSS (一)
下一篇
Day 21 - 密碼學初探
系列文
資安0~100K只要30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言